
### Pacotes

library(tidyverse)

####

load("cand.RData")

summary(cand)

### Bens - Normalizar

cand$bens_norm <- (cand$bens_total_IPCA - mean(cand$bens_total_IPCA)) / sd(cand$bens_total_IPCA)

cand$Ano_2018 <- as.numeric(cand$Ano_2018)

cand$log_eleitorado <- log(cand$Eleitorado_1)

#### Renomear variáveis

cand$empresario <- cand$Empresario
cand$IC <- cand$Indice_Competitividade
cand$ideologia <- cand$IDEO_IMPUTED
cand$forca_partidaria <- cand$Forca_Partidaria


#### Seleção Variáveis

var_cand <- cand %>% select(DESCRICAO_CARGO, SG_UF, SG_PARTIDO, NOME_CANDIDATO,
                            Autofinanciamento_Eleitor, bens_total_IPCA, Empresario, 
                            Forca_Partidaria, Indice_Competitividade,
                            IDEO_IMPUTED, Ano_2018, log_eleitorado, bens_norm,
                            ideologia, IC, forca_partidaria, empresario)




#### Separação Cargos

var_cand_NA <- na.omit(var_cand)

#### Separaзгo Cargos

governador <- subset(var_cand_NA, c(var_cand_NA$DESCRICAO_CARGO == "GOVERNADOR"))
senador <- subset(var_cand_NA, c(var_cand_NA$DESCRICAO_CARGO == "SENADOR"))
federal <- subset(var_cand_NA, c(var_cand_NA$DESCRICAO_CARGO == "DEPUTADO FEDERAL"))
estadual <- subset(var_cand_NA, c(var_cand_NA$DESCRICAO_CARGO == "DEPUTADO ESTADUAL/DISTRITAL"))


#### Pareamento

library(MatchIt)

### PSM

m.out5 <- matchit(
  empresario ~ bens_norm + 
    forca_partidaria + IC + ideologia
   + log_eleitorado,
  data = governador,
  method = "nearest", distance ="glm",
  ratio = 2,
  replace = FALSE
)


m.out5

summary(m.out5)

plot(summary(m.out5))

plot(m.out5, type = "jitter", interactive = FALSE)

data_matched_optimal_gov <- match.data(m.out5)


###

m.out6 <- matchit(
  empresario ~ bens_norm + 
    forca_partidaria + IC + ideologia
  + log_eleitorado,
  data = senador,
  method = "nearest", distance ="glm",
  ratio = 2
)
m.out6

summary(m.out6)

plot(summary(m.out6))

plot(m.out6, type = "jitter", interactive = FALSE)

data_matched_optimal_sen <- match.data(m.out6)

### Deputado Federal

m.out7 <- matchit(
  empresario ~ bens_norm + 
    forca_partidaria + IC + ideologia
  + log_eleitorado,
  data = federal,
  method = "nearest", distance ="glm",
  ratio = 2
)
m.out7

summary(m.out7)

plot(summary(m.out7))

plot(m.out7, type = "jitter", interactive = FALSE)

data_matched_optimal_fed <- match.data(m.out7)

### Deputado Estadual

m.out8 <- matchit(
  empresario ~ bens_norm + 
    forca_partidaria + IC + ideologia
  + log_eleitorado,
  data = estadual,
  method = "nearest", distance ="glm",
  ratio = 2
)

m.out8

summary(m.out8)

plot(summary(m.out8))

plot(m.out8, type = "jitter", interactive = FALSE)

data_matched_optimal_est <- match.data(m.out8)

#### Estimativas

### Governador

#### Modelo Simples

ols_0 <- lm(Autofinanciamento_Eleitor ~ empresario, 
            data = governador)

summary(ols_0)


### Com Variáveis de Controle

ols_1 <- lm(Autofinanciamento_Eleitor ~ empresario + bens_norm + 
              forca_partidaria + IC + ideologia
            + log_eleitorado, 
            data = governador)

summary(ols_1)


#### Pareado

ols_2 <- lm(Autofinanciamento_Eleitor ~ empresario, 
            data = data_matched_optimal_gov)

summary(ols_2)


### Senador

#### Modelo Simples

ols_01 <- lm(Autofinanciamento_Eleitor ~ empresario, 
            data = senador)

summary(ols_01)


### Com Variáveis de Controle

ols_11 <- lm(Autofinanciamento_Eleitor ~ empresario + bens_norm + 
               forca_partidaria + IC + ideologia
             + log_eleitorado, 
            data = senador)

summary(ols_11)


#### Pareado

ols_21 <- lm(Autofinanciamento_Eleitor ~ empresario, 
             data = data_matched_optimal_sen)

summary(ols_21)


### 

library(texreg)


screenreg(list(ols_0, ols_1, ols_2))


screenreg(list(ols_01, ols_11, ols_21))

####

### Deputado Federal

#### Modelo Simples

ols_02 <- lm(Autofinanciamento_Eleitor ~ empresario, 
            data = federal)

summary(ols_02)


### Com Variáveis de Controle

ols_12 <- lm(Autofinanciamento_Eleitor ~ empresario + bens_norm + 
               forca_partidaria + IC + ideologia
             + log_eleitorado, 
            data = federal)

summary(ols_12)


#### Pareado

ols_22 <- lm(Autofinanciamento_Eleitor ~ empresario, 
            data = data_matched_optimal_fed)

summary(ols_22)


### Deputado Estadual

#### Modelo Simples

ols_03 <- lm(Autofinanciamento_Eleitor ~ empresario, 
             data = estadual)

summary(ols_03)


### Com Variáveis de Controle

ols_13 <- lm(Autofinanciamento_Eleitor ~ empresario + bens_norm + 
               forca_partidaria + IC + ideologia
             + log_eleitorado, 
             data = estadual)

summary(ols_13)


#### Pareado

ols_23 <- lm(Autofinanciamento_Eleitor ~ empresario, 
             data = data_matched_optimal_est)

summary(ols_23)


### 


screenreg(list(ols_02, ols_12, ols_22))

screenreg(list(ols_03, ols_13, ols_23))


###

htmlreg(list(ols_0, ols_1, ols_2, ols_01, ols_11, ols_21),
        file = "governador e senador.doc",  caption = "Regressхes",
        caption.above = TRUE, 
        digits = 3)

htmlreg(list(ols_02, ols_12, ols_22, ols_03, ols_13, ols_23),
        file = "deputados.doc",  caption = "Regressхes",
        caption.above = TRUE, 
        digits = 3)





###


library(jtools)
library(sjPlot)


plot_summs(ols_0, ols_1, ols_2, ols_01, ols_11, ols_21 , scale = TRUE,
           model.names = c("Gov 1a", "Gov 2b", "Gov 3c", 
                           "Sen 1a", "Sen 2b", "Sen 3c"))

export_summs(ols_0, ols_1, ols_2, ols_01, ols_11, ols_21 , scale = TRUE,
             error_format = "[{conf.low}, {conf.high}]")


plot_summs(ols_02, ols_12, ols_22, ols_03, ols_13, ols_23 , scale = TRUE,
           model.names = c("Fed 1a", "Fed 2b", "Fed 3c", 
                           "Est 1a", "Est 2b", "Est 3c"))

export_summs(ols_02, ols_12, ols_22, ols_03, ols_13, ols_23  , scale = TRUE,
             error_format = "[{conf.low}, {conf.high}]")


### Robustez Modelos

### Outra variável dependente

cand_2 <- cand

cand_2 <- cand_2 %>% group_by(ANO_ELEICAO, SG_UF, DESCRICAO_CARGO)

cand_2 <- cand_2 %>% summarise(total_recursos = sum(Soma_Campanha_IPCA, na.rm = TRUE),
                               total_autofinanciamento = sum(Recursos_Proprios_IPCA, na.rm = TRUE))


cand_2 <- cand_2 %>% ungroup()

cand_3 <- merge(cand, cand_2, by = c("ANO_ELEICAO", "SG_UF", "DESCRICAO_CARGO"), all.x = TRUE)

cand_3$proprios_per <- ((cand_3$Recursos_Proprios_IPCA)/(cand_3$total_recursos))*100

summary(cand_3$proprios_per)


### Refazer os testes


#### Seleção Variáveis

var_cand2 <- cand_3 %>% select(DESCRICAO_CARGO, SG_UF, SG_PARTIDO, NOME_CANDIDATO,
                            Autofinanciamento_Eleitor, bens_total_IPCA, Empresario, 
                            Forca_Partidaria, Indice_Competitividade,
                            IDEO_IMPUTED, Ano_2018, log_eleitorado, bens_norm, proprios_per,
                            ideologia, IC, forca_partidaria, empresario)


#### Separação Cargos

var_cand_NA2 <- na.omit(var_cand2)

#### Separaзгo Cargos

governador2 <- subset(var_cand_NA2, c(var_cand_NA2$DESCRICAO_CARGO == "GOVERNADOR"))
senador2 <- subset(var_cand_NA2, c(var_cand_NA2$DESCRICAO_CARGO == "SENADOR"))
federal2 <- subset(var_cand_NA2, c(var_cand_NA2$DESCRICAO_CARGO == "DEPUTADO FEDERAL"))
estadual2 <- subset(var_cand_NA2, c(var_cand_NA2$DESCRICAO_CARGO == "DEPUTADO ESTADUAL/DISTRITAL"))


#### Pareamento



### PSM

m.out5 <- matchit(
  empresario ~ bens_norm + 
    forca_partidaria + IC + ideologia
  + log_eleitorado,
  data = governador2,
  method = "nearest", distance ="glm",
  ratio = 2,
  replace = FALSE
)


m.out5

summary(m.out5)

plot(summary(m.out5))

plot(m.out5, type = "jitter", interactive = FALSE)

data_matched_optimal_gov2 <- match.data(m.out5)


###

m.out6 <- matchit(
  Empresario ~ bens_norm + 
    Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
  + log_eleitorado,
  data = senador2,
  method = "nearest", distance ="glm",
  ratio = 2
)
m.out6

summary(m.out6)

plot(summary(m.out6))

plot(m.out6, type = "jitter", interactive = FALSE)

data_matched_optimal_sen2 <- match.data(m.out6)

### Deputado Federal

m.out7 <- matchit(
  Empresario ~ bens_norm + 
    Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
  + log_eleitorado,
  data = federal2,
  method = "nearest", distance ="glm",
  ratio = 2
)
m.out7

summary(m.out7)

plot(summary(m.out7))

plot(m.out7, type = "jitter", interactive = FALSE)

data_matched_optimal_fed2 <- match.data(m.out7)

### Deputado Estadual

m.out8 <- matchit(
  Empresario ~ bens_norm + 
    Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
  + log_eleitorado,
  data = estadual2,
  method = "nearest", distance ="glm",
  ratio = 2
)

m.out8

summary(m.out8)

plot(summary(m.out8))

plot(m.out8, type = "jitter", interactive = FALSE)

data_matched_optimal_est2 <- match.data(m.out8)

#### Estimativas

### Governador

#### Modelo Simples

ols_0 <- lm(proprios_per ~ Empresario, 
            data = governador2)

summary(ols_0)


### Com Variáveis de Controle

ols_1 <- lm(proprios_per ~ Empresario + bens_norm + 
              Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
            + log_eleitorado, 
            data = governador2)

summary(ols_1)


#### Pareado

ols_2 <- lm(proprios_per ~ Empresario, 
            data = data_matched_optimal_gov2)

summary(ols_2)


### Senador

#### Modelo Simples

ols_01 <- lm(proprios_per ~ Empresario, 
             data = senador2)

summary(ols_01)


### Com Variáveis de Controle

ols_11 <- lm(proprios_per ~ Empresario + bens_norm + 
               Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
             + log_eleitorado, 
             data = senador2)

summary(ols_11)


#### Pareado

ols_21 <- lm(proprios_per ~ Empresario, 
             data = data_matched_optimal_sen2)

summary(ols_21)


### 

library(texreg)


screenreg(list(ols_0, ols_1, ols_2))


screenreg(list(ols_01, ols_11, ols_21))

####

### Deputado Federal

#### Modelo Simples

ols_02 <- lm(proprios_per ~ Empresario, 
             data = federal2)

summary(ols_02)


### Com Variáveis de Controle

ols_12 <- lm(proprios_per ~ Empresario + bens_norm + 
               Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
             + log_eleitorado, 
             data = federal2)

summary(ols_12)


#### Pareado

ols_22 <- lm(proprios_per ~ Empresario, 
             data = data_matched_optimal_fed2)

summary(ols_22)


### Deputado Estadual

#### Modelo Simples

ols_03 <- lm(proprios_per ~ Empresario, 
             data = estadual2)

summary(ols_03)


### Com Variáveis de Controle

ols_13 <- lm(proprios_per ~ Empresario + bens_norm + 
               Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
             + log_eleitorado, 
             data = estadual2)

summary(ols_13)


#### Pareado

ols_23 <- lm(proprios_per ~ Empresario, 
             data = data_matched_optimal_est2)

summary(ols_23)


### 


screenreg(list(ols_02, ols_12, ols_22))

screenreg(list(ols_03, ols_13, ols_23))

###

htmlreg(list(ols_0, ols_1, ols_2, ols_01, ols_11, ols_21),
        file = "governador e senador 2.doc",  caption = "Regressхes",
        caption.above = TRUE, 
        digits = 3)

htmlreg(list(ols_02, ols_12, ols_22, ols_03, ols_13, ols_23),
        file = "deputados 2.doc",  caption = "Regressхes",
        caption.above = TRUE, 
        digits = 3)



###

plot_summs(ols_0, ols_1, ols_2, ols_01, ols_11, ols_21 , scale = TRUE,
           model.names = c("Gov 1a", "Gov 2b", "Gov 3c", 
                           "Sen 1a", "Sen 2b", "Sen 3c"))

export_summs(ols_0, ols_1, ols_2, ols_01, ols_11, ols_21 , scale = TRUE,
             error_format = "[{conf.low}, {conf.high}]")


plot_summs(ols_02, ols_12, ols_22, ols_03, ols_13, ols_23 , scale = TRUE,
           model.names = c("Fed 1a", "Fed 2b", "Fed 3c", 
                           "Est 1a", "Est 2b", "Est 3c"))





### Outra caracterização de empresário


### Bens

library(openxlsx)

bens_df <- read.xlsx("candidatos_nacional.xlsx")

bens_df <- bens_df %>% dplyr:: select(ano, sigla_uf, sequencial_candidato.x, cpf, 
                                      empresario_al, empresario_al_1, empresas)


summary(bens_df)

summary(cand)

bens_df$CPF_CANDIDATO <- as.numeric(bens_df$cpf)
bens_df$ANO_ELEICAO <- as.numeric(bens_df$ano)



####



cand_4 <- merge(cand_3, bens_df, by = c("ANO_ELEICAO", "CPF_CANDIDATO"), all.x = TRUE)

summary(cand_4)


### Refazer os testes

#### Seleção Variáveis

var_cand <- cand_4 %>% dplyr::select(DESCRICAO_CARGO, SG_UF, SG_PARTIDO, NOME_CANDIDATO,
                              Autofinanciamento_Eleitor, bens_total_IPCA, 
                              Forca_Partidaria, Indice_Competitividade,
                              IDEO_IMPUTED, log_eleitorado, bens_norm, proprios_per, empresario_al,
                              empresas)


#### Separação Cargos

var_cand_NA <- na.omit(var_cand)

#### Separaзгo Cargos

governador <- subset(var_cand_NA, c(var_cand_NA$DESCRICAO_CARGO == "GOVERNADOR"))
senador <- subset(var_cand_NA, c(var_cand_NA$DESCRICAO_CARGO == "SENADOR"))
federal <- subset(var_cand_NA, c(var_cand_NA$DESCRICAO_CARGO == "DEPUTADO FEDERAL"))
estadual <- subset(var_cand_NA, c(var_cand_NA$DESCRICAO_CARGO == "DEPUTADO ESTADUAL/DISTRITAL"))


#### Pareamento

### PSM

m.out5 <- matchit(
  empresario_al ~ bens_norm + 
    Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
  + log_eleitorado,
  data = governador,
  method = "nearest", distance ="glm",
  ratio = 2,
  replace = FALSE
)


m.out5

summary(m.out5)

plot(summary(m.out5))

plot(m.out5, type = "jitter", interactive = FALSE)

data_matched_optimal_gov <- match.data(m.out5)


###

m.out6 <- matchit(
  empresario_al ~ bens_norm + 
    Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
  + log_eleitorado,
  data = senador,
  method = "nearest", distance ="glm",
  ratio = 2
)
m.out6

summary(m.out6)

plot(summary(m.out6))

plot(m.out6, type = "jitter", interactive = FALSE)

data_matched_optimal_sen <- match.data(m.out6)

### Deputado Federal

m.out7 <- matchit(
  empresario_al ~ bens_norm + 
    Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
  + log_eleitorado,
  data = federal,
  method = "nearest", distance ="glm",
  ratio = 2
)
m.out7

summary(m.out7)

plot(summary(m.out7))

plot(m.out7, type = "jitter", interactive = FALSE)

data_matched_optimal_fed <- match.data(m.out7)

### Deputado Estadual

m.out8 <- matchit(
  empresario_al ~ bens_norm + 
    Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
  + log_eleitorado,
  data = estadual,
  method = "nearest", distance ="glm",
  ratio = 2
)

m.out8

summary(m.out8)

plot(summary(m.out8))

plot(m.out8, type = "jitter", interactive = FALSE)

data_matched_optimal_est <- match.data(m.out8)

#### Estimativas

### Governador

#### Modelo Simples

ols_0 <- lm(Autofinanciamento_Eleitor ~ empresario_al, 
            data = governador)

summary(ols_0)


### Com Variáveis de Controle

ols_1 <- lm(Autofinanciamento_Eleitor ~ empresario_al + bens_norm + 
              Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
            + log_eleitorado, 
            data = governador)

summary(ols_1)


#### Pareado

ols_2 <- lm(Autofinanciamento_Eleitor ~ empresario_al, 
            data = data_matched_optimal_gov)

summary(ols_2)


### Senador

#### Modelo Simples

ols_01 <- lm(Autofinanciamento_Eleitor ~ empresario_al, 
             data = senador)

summary(ols_01)


### Com Variáveis de Controle

ols_11 <- lm(Autofinanciamento_Eleitor ~ empresario_al + bens_norm + 
               Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
             + log_eleitorado, 
             data = senador)

summary(ols_11)


#### Pareado

ols_21 <- lm(Autofinanciamento_Eleitor ~ empresario_al, 
             data = data_matched_optimal_sen)

summary(ols_21)


### 

library(texreg)


screenreg(list(ols_0, ols_1, ols_2))


screenreg(list(ols_01, ols_11, ols_21))

####

### Deputado Federal

#### Modelo Simples

ols_02 <- lm(Autofinanciamento_Eleitor ~ empresario_al, 
             data = federal)

summary(ols_02)


### Com Variáveis de Controle

ols_12 <- lm(Autofinanciamento_Eleitor ~ empresario_al + bens_norm + 
               Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
             + log_eleitorado, 
             data = federal)

summary(ols_12)


#### Pareado

ols_22 <- lm(Autofinanciamento_Eleitor ~ empresario_al, 
             data = data_matched_optimal_fed)

summary(ols_22)


### Deputado Estadual

#### Modelo Simples

ols_03 <- lm(Autofinanciamento_Eleitor ~ empresario_al, 
             data = estadual)

summary(ols_03)


### Com Variáveis de Controle

ols_13 <- lm(Autofinanciamento_Eleitor ~ empresario_al + bens_norm + 
               Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
             + log_eleitorado, 
             data = estadual)

summary(ols_13)


#### Pareado

ols_23 <- lm(Autofinanciamento_Eleitor ~ empresario_al, 
             data = data_matched_optimal_est)

summary(ols_23)


### 


screenreg(list(ols_02, ols_12, ols_22))

screenreg(list(ols_03, ols_13, ols_23))


###

htmlreg(list(ols_0, ols_1, ols_2, ols_01, ols_11, ols_21),
        file = "governador e senador 3.doc",  caption = "Regressхes",
        caption.above = TRUE, 
        digits = 3)

htmlreg(list(ols_02, ols_12, ols_22, ols_03, ols_13, ols_23),
        file = "deputados 3.doc",  caption = "Regressхes",
        caption.above = TRUE, 
        digits = 3)





### Governador

#### Modelo Simples

ols_0 <- lm(proprios_per ~ empresario_al, 
            data = governador)

summary(ols_0)


### Com Variáveis de Controle

ols_1 <- lm(proprios_per ~ empresario_al + bens_norm + 
              Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
            + log_eleitorado, 
            data = governador)

summary(ols_1)


#### Pareado

ols_2 <- lm(proprios_per ~ empresario_al, 
            data = data_matched_optimal_gov)

summary(ols_2)


### Senador

#### Modelo Simples

ols_01 <- lm(proprios_per ~ empresario_al, 
             data = senador)

summary(ols_01)


### Com Variáveis de Controle

ols_11 <- lm(proprios_per ~ empresario_al + bens_norm + 
               Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
             + log_eleitorado, 
             data = senador)

summary(ols_11)


#### Pareado

ols_21 <- lm(proprios_per ~ empresario_al, 
             data = data_matched_optimal_sen)

summary(ols_21)


### 

library(texreg)


screenreg(list(ols_0, ols_1, ols_2))


screenreg(list(ols_01, ols_11, ols_21))

####

### Deputado Federal

#### Modelo Simples

ols_02 <- lm(proprios_per ~ empresario_al, 
             data = federal)

summary(ols_02)


### Com Variáveis de Controle

ols_12 <- lm(proprios_per ~ empresario_al + bens_norm + 
               Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
             + log_eleitorado, 
             data = federal)

summary(ols_12)


#### Pareado

ols_22 <- lm(proprios_per ~ empresario_al, 
             data = data_matched_optimal_fed)

summary(ols_22)


### Deputado Estadual

#### Modelo Simples

ols_03 <- lm(proprios_per ~ empresario_al, 
             data = estadual)

summary(ols_03)


### Com Variáveis de Controle

ols_13 <- lm(proprios_per ~ empresario_al + bens_norm + 
               Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
             + log_eleitorado, 
             data = estadual)

summary(ols_13)


#### Pareado

ols_23 <- lm(proprios_per ~ empresario_al, 
             data = data_matched_optimal_est)

summary(ols_23)


### 


screenreg(list(ols_02, ols_12, ols_22))

screenreg(list(ols_03, ols_13, ols_23))

###

htmlreg(list(ols_0, ols_1, ols_2, ols_01, ols_11, ols_21),
        file = "governador e senador 4.doc",  caption = "Regressхes",
        caption.above = TRUE, 
        digits = 3)

htmlreg(list(ols_02, ols_12, ols_22, ols_03, ols_13, ols_23),
        file = "deputados 4.doc",  caption = "Regressхes",
        caption.above = TRUE, 
        digits = 3)



#### Estimativas

### Governador

#### Modelo Simples

ols_0 <- lm(proprios_per ~ empresario_al, 
            data = governador)

summary(ols_0)


### Com Variáveis de Controle

ols_1 <- lm(proprios_per ~ empresario_al + bens_norm + 
              Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
            + log_eleitorado, 
            data = governador)

summary(ols_1)


#### Pareado

ols_2 <- lm(proprios_per ~ empresario_al, 
            data = data_matched_optimal_gov)

summary(ols_2)


### Senador

#### Modelo Simples

ols_01 <- lm(proprios_per ~ empresario_al, 
             data = senador)

summary(ols_01)


### Com Variáveis de Controle

ols_11 <- lm(proprios_per ~ empresario_al + bens_norm + 
               Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
             + log_eleitorado, 
             data = senador)

summary(ols_11)


#### Pareado

ols_21 <- lm(proprios_per ~ empresario_al, 
             data = data_matched_optimal_sen)

summary(ols_21)


### 

library(texreg)


screenreg(list(ols_0, ols_1, ols_2))


screenreg(list(ols_01, ols_11, ols_21))

####

### Deputado Federal

#### Modelo Simples

ols_02 <- lm(proprios_per ~ empresario_al, 
             data = federal)

summary(ols_02)


### Com Variáveis de Controle

ols_12 <- lm(proprios_per ~ empresario_al + bens_norm + 
               Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
             + log_eleitorado, 
             data = federal)

summary(ols_12)


#### Pareado

ols_22 <- lm(proprios_per ~ empresario_al, 
             data = data_matched_optimal_fed)

summary(ols_22)


### Deputado Estadual

#### Modelo Simples

ols_03 <- lm(proprios_per ~ empresario_al, 
             data = estadual)

summary(ols_03)


### Com Variáveis de Controle

ols_13 <- lm(proprios_per ~ empresario_al + bens_norm + 
               Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
             + log_eleitorado, 
             data = estadual)

summary(ols_13)


#### Pareado

ols_23 <- lm(proprios_per ~ empresario_al, 
             data = data_matched_optimal_est)

summary(ols_23)


### 


screenreg(list(ols_02, ols_12, ols_22))

screenreg(list(ols_03, ols_13, ols_23))

###

htmlreg(list(ols_0, ols_1, ols_2, ols_01, ols_11, ols_21),
        file = "governador e senador 4.doc",  caption = "Regressхes",
        caption.above = TRUE, 
        digits = 3)

htmlreg(list(ols_02, ols_12, ols_22, ols_03, ols_13, ols_23),
        file = "deputados 4.doc",  caption = "Regressхes",
        caption.above = TRUE, 
        digits = 3)



###

plot_summs(ols_0, ols_1, ols_2, ols_01, ols_11, ols_21 , scale = TRUE,
           model.names = c("Gov 1a", "Gov 2b", "Gov 3c", 
                           "Sen 1a", "Sen 2b", "Sen 3c"))

export_summs(ols_0, ols_1, ols_2, ols_01, ols_11, ols_21 , scale = TRUE,
             error_format = "[{conf.low}, {conf.high}]")


plot_summs(ols_02, ols_12, ols_22, ols_03, ols_13, ols_23 , scale = TRUE,
           model.names = c("Fed 1a", "Fed 2b", "Fed 3c", 
                           "Est 1a", "Est 2b", "Est 3c"))


### Por ano e UF

### Governador 

library(texreg)
library(plm)

### Efeitos Fixos

mu1 <- plm(Autofinanciamento_Eleitor ~ empresario + bens_norm + 
                Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
              + log_eleitorado + Ano_2018,
             index = c("SG_UF"), 
             model = "within",
             data = governador2) 


summary(mu1)


### Senador 

mu2 <- plm(Autofinanciamento_Eleitor ~ empresario + bens_norm + 
            Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
          + log_eleitorado + Ano_2018,
          index = c("SG_UF"), 
          model = "within", 
          data = senador2)

summary(mu2)


### Deputado Federal

mu3 <- plm(Autofinanciamento_Eleitor ~ empresario + bens_norm + 
            Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
          + log_eleitorado + Ano_2018,
          index = c("SG_UF"), 
          model = "within", 
          data = federal2)

summary(mu3)



### Deputado Estadual

mu4 <- plm(Autofinanciamento_Eleitor ~ empresario + bens_norm + 
            Forca_Partidaria + Indice_Competitividade + IDEO_IMPUTED
          + log_eleitorado + Ano_2018,
          index = c("SG_UF"), 
          model = "within", 
          data = estadual2)

summary(mu4)



screenreg(list(mu1, mu2, mu3, mu4))


htmlreg(list(mu1, mu2, mu3, mu4),
        file = "efeitos fixos.doc",  caption = "Regressхes",
        caption.above = TRUE, 
        digits = 3)


####

#### Mecanismos

library(dplyr)

### Dados

load("cand.RData")

summary(cand)
colnames(cand)

str(cand)

#### Seleзгo Variбveis



var_cand <- cand %>% dplyr::select(DESCRICAO_CARGO, SG_UF, SG_PARTIDO, NOME_CANDIDATO,
                            Autofinanciamento_Eleitor, Empresario, 
                            Forca_Partidaria, Indice_Competitividade,
                            IDEO_IMPUTED, Ano_2018, Recursos_Partidos_IPCA,
                            Recursos_Proprios_IPCA, Eleito, ANO_ELEICAO)

cand_NA <- na.omit(var_cand)

cand_NA_2018 <- subset(cand_NA, c(cand_NA$Ano_2018 == 1))
cand_NA_2014 <- subset(cand_NA, c(cand_NA$ANO_ELEICAO == 2014))
cand_NA_2010 <- subset(cand_NA, c(cand_NA$ANO_ELEICAO == 2010))

summary(cand$Recursos_Proprios_IPCA)

summary(cand$Recursos_Partidos_IPCA)

var_cand_NA_2018 <- subset(cand, c(cand$Ano_2018 == 1))
var_cand_NA_2014 <- subset(cand, c(cand$ANO_ELEICAO == 2014))
var_cand_NA_2010 <- subset(cand, c(cand$ANO_ELEICAO == 2010))

#### Geral

quantile(cand_NA_2018$Recursos_Proprios_IPCA, probs = seq(.1, .99, by = .01))

353911.228

quantile(cand_NA_2018$Recursos_Partidos_IPCA, probs = seq(.1, .99, by = .01))

1698832.2511 

quantile(cand_NA_2014$Recursos_Proprios_IPCA, probs = seq(.1, .99, by = .01))

456532.70400

quantile(cand_NA_2014$Recursos_Partidos_IPCA, probs = seq(.1, .99, by = .01))

1952251

quantile(cand_NA_2010$Recursos_Proprios_IPCA, probs = seq(.1, .99, by = .01))

585562

quantile(cand_NA_2010$Recursos_Partidos_IPCA, probs = seq(.1, .99, by = .01))

1889939


####

var_cand_NA_2018$Tratamento_Pr <- cut(var_cand_NA_2018$Recursos_Proprios_IPCA, 
                                      c(0.000000, 353911, 10000000000),
                                      labels = c("0", "1"))

var_cand_NA_2018$Tratamento_Par <- cut(var_cand_NA_2018$Recursos_Partidos_IPCA, 
                                       c(0.000000, 1698832, 100000000000000.0),
                                       labels = c("0", "1"))

summary(var_cand_NA_2018$Tratamento_Pr)

summary(var_cand_NA_2018$Tratamento_Par)


percentil_2018 <- subset(var_cand_NA_2018, c(var_cand_NA_2018$Tratamento_Pr== "1"|
                                               var_cand_NA_2018$Tratamento_Par== "1" ))


### 2014


percentil_2018$Empresario <- as.factor(percentil_2018$Empresario)

summary(percentil_2018$Empresario)



83/458

#### Exportar


library(openxlsx)

write.xlsx(percentil_2018, "percentil_2018.xlsx")

empresario_2018 <- subset(percentil_2018, c(percentil_2018$Empresario== "1"))

write.xlsx(empresario_2018, "empresario_2018.xlsx")



#### Por cargo



#### 2018



tese_2018g <- subset(cand_NA_2018, c(cand_NA_2018$DESCRICAO_CARGO == "GOVERNADOR"))

tese_2018s <- subset(cand_NA_2018, c(cand_NA_2018$DESCRICAO_CARGO == "SENADOR"))

tese_2018df <- subset(cand_NA_2018, c(cand_NA_2018$DESCRICAO_CARGO == "DEPUTADO FEDERAL"))

tese_2018de <- subset(cand_NA_2018, c(cand_NA_2018$DESCRICAO_CARGO == "DEPUTADO ESTADUAL/DISTRITAL"))

### St

tese_2018g$Recursos_Proprios_IPCA

summary(tese_2018g$Recursos_Proprios_IPCA)

quantile(tese_2018g$Recursos_Proprios_IPCA, probs = seq(.1, .99, by = .01))

1.611962e+06

tese_2018g$Tratamento_Pr <- cut(tese_2018g$Recursos_Proprios_IPCA, 
                                c(0.000000, 1743926.0, 10000000000),
                                labels = c("0", "1"))


percentil_2018_g <- subset(tese_2018g, c( tese_2018g$Tratamento_Pr == "1" ))

sum(percentil_2018_g$Recursos_Proprios_IPCA)

### St

tese_2018s$Recursos_Proprios_IPCA

summary(tese_2018s$Recursos_Proprios_IPCA)

quantile(tese_2018s$Recursos_Proprios_IPCA, probs = seq(.1, .99, by = .01))

2.799348e+06

tese_2018s$Tratamento_Pr <- cut(tese_2018s$Recursos_Proprios_IPCA, 
                                c(0.000000, 2799348.0, 10000000000),
                                labels = c("0", "1"))


percentil_2018_s <- subset(tese_2018s, c( tese_2018s$Tratamento_Pr == "1" ))

sum(percentil_2018_s$Recursos_Proprios_IPCA)

### St

quantile(tese_2018df$Recursos_Proprios_IPCA, probs = seq(.1, .99, by = .01))

4.178053e+05

tese_2018df$Tratamento_Pr <- cut(tese_2018df$Recursos_Proprios_IPCA, 
                                 c(0.000000, 417805.3 , 10000000000),
                                 labels = c("0", "1"))


percentil_2018_df <- subset(tese_2018df, c( tese_2018df$Tratamento_Pr == "1" ))

sum(percentil_2018_df$Recursos_Proprios_IPCA)

percentil_2018_dfe <- subset(percentil_2018_df, c( percentil_2018_df$Empresario == "1" ))

sum(percentil_2018_dfe$Recursos_Proprios_IPCA)

### St

quantile(tese_2018de$Recursos_Proprios_IPCA, probs = seq(.1, .99, by = .01))

289884.01815 

tese_2018de$Tratamento_Pr <- cut(tese_2018de$Recursos_Proprios_IPCA, 
                                 c(0.000000, 289884.01815  , 10000000000),
                                 labels = c("0", "1"))


percentil_2018_de <- subset(tese_2018de, c( tese_2018de$Tratamento_Pr == "1" ))

sum(percentil_2018_de$Recursos_Proprios_IPCA)



### DAG


library(ggdag)
theme_set(theme_dag())


NV_CVD_dag<- dagify(autofinanciamento ~ empresario,
                    autofinanciamento ~ IC,
                    autofinanciamento ~ eleitorado,
                    autofinanciamento ~ ideologia,
                    autofinanciamento ~ bens,
                    autofinanciamento ~ forca_partidaria,
                    autofinanciamento ~ empresario + IC + eleitorado + ideologia + bens + forca_partidaria,
                    autofinanciamento ~ nao_observados,
                    IC ~ eleitorado,
                    empresario ~ IC,
                    forca_partidaria ~ IC,
                    empresario ~ bens,
                    bens ~ empresario
                    ,
                    
                    #create labels for variables ("\n" denotes a space)
                    labels = c("empresario" = "empr", 
                               "autofinanciamento" = "autofinan",
                               "forca_partidaria" = "forca",
                               "eleitorado" = "eleitorado",
                               "IC" = "IC",
                               "bens" = "riq",
                               "ideologia" = "direi",
                               "nao_observados" = "outros_fat"),
                    
                    #identify exposure and outcome     
                    exposure = "empresario",
                    outcome = "autofinanciamento")

#plot DAG using the ggdag function
ggdag(NV_CVD_dag, text = FALSE, use_labels = "label",edge_type="link_arc")


ggdag_paths(NV_CVD_dag, text = FALSE, use_labels = "label", shadow = TRUE, 
            
            #directed=false indicates all paths, regardless of direction            
            directed=FALSE,  
            
            #changing node/text sizes for aesthetics             
            node_size = 8,   text_size = 2, stylized = TRUE)

#using "ggdag_paths_fan to overlap all paths
ggdag_paths_fan(NV_CVD_dag, text = FALSE, use_labels = "label", shadow = TRUE, 
                directed=FALSE,  
                node_size = 8,   text_size = 3, stylized = TRUE)

ggdag_paths(NV_CVD_dag, text = FALSE, use_labels = "label", shadow = TRUE, 
            
            #directed=true indicates directed paths            
            directed=TRUE,  
            node_size = 10,   text_size = 2.8, stylized = TRUE)

ggdag_adjustment_set(NV_CVD_dag, text = FALSE, use_labels = "label", 
                     shadow = TRUE, stylized = TRUE, node_size = 10,   text_size = 2.8)

### https://rpubs.com/leahmoubadder/726250 


### Correlação Bens x Autofinanciamento

plot(var_cand_NA2$bens_norm, var_cand_NA2$Autofinanciamento_Eleitor)

cor(var_cand_NA2$bens_norm, var_cand_NA2$Autofinanciamento_Eleitor)

cor(governador2$bens_norm, governador2$Autofinanciamento_Eleitor)

cor(senador2$bens_norm, senador2$Autofinanciamento_Eleitor)

cor(federal2$bens_norm, federal2$Autofinanciamento_Eleitor)

cor(estadual2$bens_norm, estadual2$Autofinanciamento_Eleitor)

### Cargo

cand_5 <- cand

cand_5 <- cand_5 %>% group_by(DESCRICAO_CARGO)

cand_5 <- cand_5 %>% summarise(total_recursos = sum(Soma_Campanha_IPCA, na.rm = TRUE),
                               total_rproprios = sum(Recursos_Proprios_IPCA, na.rm = TRUE),
                               total_rpartidos = sum(Recursos_Partidos_IPCA, na.rm = TRUE),
                               total_bens = sum(bens_total_IPCA, na.rm = TRUE))

cand_5 <- cand_5 %>% ungroup()


cand_5$total_rproprios_per <- ((cand_5$total_rproprios)*100)/(cand_5$total_recursos)

### Por cargo 

cand_5 %>% 
  mutate(sigla_uf = fct_reorder(DESCRICAO_CARGO, total_rproprios_per)) %>%
  ggplot(aes(DESCRICAO_CARGO, total_rproprios_per)) +
  geom_col(col = "white",
           fill = "blue",
           alpha = .5) +
  theme_bw() +
  coord_flip() +
  labs(x = "",
       y = "Percentual de Recursos Próprios",
       title = "",
       subtitle = "",
       caption = "") + 
  geom_text(aes(label = round(total_rproprios_per, 2)),
            size = 3,
            hjust = 1) + 
  theme(text = element_text(size = 10))

### Ano

cand_6 <- cand

cand_6 <- cand_6 %>% group_by(ANO_ELEICAO)

cand_6 <- cand_6 %>% summarise(total_recursos = sum(Soma_Campanha_IPCA, na.rm = TRUE),
                               total_rproprios = sum(Recursos_Proprios_IPCA, na.rm = TRUE),
                               total_rpartidos = sum(Recursos_Partidos_IPCA, na.rm = TRUE),
                               total_bens = sum(bens_total_IPCA, na.rm = TRUE))

cand_6 <- cand_6 %>% ungroup()


cand_6$total_rproprios_per <- ((cand_6$total_rproprios)*100)/(cand_6$total_recursos)

### Por cargo 

cand_6$ano <- as.factor(cand_6$ANO_ELEICAO)

cand_6 %>% 
  mutate(sigla_uf = fct_reorder(ano, total_rproprios_per)) %>%
  ggplot(aes(ano, total_rproprios_per)) +
  geom_col(col = "white",
           fill = "blue",
           alpha = .5) +
  theme_bw() +
  coord_flip() +
  labs(x = "",
       y = "Percentual de Recursos Próprios",
       title = "",
       subtitle = "",
       caption = "") + 
  geom_text(aes(label = round(total_rproprios_per, 2)),
            size = 3,
            hjust = 1) + 
  theme(text = element_text(size = 10))

### Ano e cargo

cand_7 <- cand

cand_7 <- cand_7 %>% group_by(ANO_ELEICAO, DESCRICAO_CARGO)

cand_7 <- cand_7 %>% summarise(total_recursos = sum(Soma_Campanha_IPCA, na.rm = TRUE),
                               total_rproprios = sum(Recursos_Proprios_IPCA, na.rm = TRUE),
                               total_rpartidos = sum(Recursos_Partidos_IPCA, na.rm = TRUE),
                               total_bens = sum(bens_total_IPCA, na.rm = TRUE))

cand_7 <- cand_7 %>% ungroup()


cand_7$total_rproprios_per <- ((cand_7$total_rproprios)*100)/(cand_7$total_recursos)

cand_7$total_rpartidos_per <- ((cand_7$total_rpartidos)*100)/(cand_7$total_recursos)

### Por cargo 

cand_7$ano <- as.factor(cand_7$ANO_ELEICAO)

ggplot(cand_7, aes(x = ano, y = total_rproprios_per, fill = DESCRICAO_CARGO)) +
  geom_col()

ggplot(cand_7, aes(x = DESCRICAO_CARGO, y = total_rproprios_per, fill = ano)) +
  scale_fill_manual(values = c("red", "grey", "seagreen3", "blue")) +
  geom_col() + geom_text(aes(label = round(total_rproprios_per, digits = 2)), 
                         position = position_stack(vjust = 0.5), size = 4, color = "black")

ggplot(cand_7, aes(x = DESCRICAO_CARGO, y = total_rproprios_per, fill = ano)) +
  geom_col(position = position_dodge()) +
  geom_text(aes(label = total_rproprios_per), vjust = 2, size = 5, color = "#ffffff")


ggplot(cand_7, aes(x = DESCRICAO_CARGO, y = total_rproprios_per, fill = ano)) +
  geom_col(position = position_dodge()) +
  geom_text(aes(label = round(total_rproprios_per, digits = 2)), 
            vjust = 0.2, size = 4, color = "black")

# You can't nudge and dodge text, so instead adjust the y position
ggplot(cand_7, aes(x = DESCRICAO_CARGO, y = total_rproprios_per, fill = ano)) +
  geom_col(aes(fill = ano), position = "dodge") +
  geom_text(
    aes(label = round(total_rproprios_per, digits = 2)),
    position = position_dodge(0.9),
    vjust = 0,
    size = 4, color = "black"
  )


ggplot(cand_7, aes(x = DESCRICAO_CARGO, y = total_rpartidos_per, fill = ano)) +
  geom_col(aes(fill = ano), position = "dodge") +
  geom_text(
    aes(label = round(total_rpartidos_per, digits = 2)),
    position = position_dodge(0.9),
    vjust = 0,
    size = 4, color = "black"
  )

###

### Correlação Variáveis Dependentes


plot(proprios_per ~ Autofinanciamento_Eleitor, data = governador2)

cor(governador2$proprios_per, governador2$Autofinanciamento_Eleitor)

plot(proprios_per ~ Autofinanciamento_Eleitor, data = senador2)

cor(senador2$proprios_per, senador2$Autofinanciamento_Eleitor)

plot(proprios_per ~ Autofinanciamento_Eleitor, data = federal2)

cor(federal2$proprios_per, federal2$Autofinanciamento_Eleitor)

plot(proprios_per ~ Autofinanciamento_Eleitor, data = estadual2)

cor(estadual2$proprios_per, estadual2$Autofinanciamento_Eleitor)


### Gráficos 



# Quick display of two cabapilities of GGally, to assess the distribution and correlation of variables 
library(GGally)

summary(var_cand_NA2)

names(var_cand_NA2)

ggpairs(var_cand_NA2, columns = c(5, 14), ggplot2::aes(colour=DESCRICAO_CARGO)) 



